package otcpro_service

type BaseInfo struct {
	AccessID     string `json:"accessId"`
	OrderType    string `json:"orderType"`
	PurchaserID  string `json:"purchaserId"`
	ServiceType  string `json:"serviceType"`
	SalesChannel string `json:"salesChannel"`
	TerminalType string `json:"terminalType"`
	OrderMode    string `json:"orderMode"`
}

type OrdinaryProduct struct {
	ProductID          string `json:"productId"`
	ProductVersionID   string `json:"productVersionId"`
	StandardPrice      int    `json:"standardPrice"`
	MinimumPrice       int    `json:"minimumPrice"`
	SellingCount       int    `json:"sellingCount"`
	SellingAmount      int 	  `json:"sellingAmount"`
	EffectiveDateStart string `json:"effectiveDateStart"`
	EffectiveDateEnd   string `json:"effectiveDateEnd"`
	PresentTag         string `json:"presentTag"`
	PresentQuantity    int    `json:"presentQuantity"`
}

type ProductInfo struct {
	BenefiterID         string `json:"benefiterId"`
	OrdinaryProductList []OrdinaryProduct `json:"ordinaryProductList"`
}

type InvoiceInfo struct {
	InvoiceType      string `json:"invoiceType"`
	InvoiceTitleType string `json:"invoiceTitleType"`
	Title            string `json:"title"`
}

type DeliveryInfo struct {
	ReceiverEmail  string `json:"receiverEmail"`
	ReceiverMobile string `json:"receiverMobile"`
	LocationCode   string `json:"locationCode"`
}

type ContactInfo struct {
	ContactName string `json:"contactName"`
	Gender      string `json:"gender"`
	Role        string `json:"role"`
	Mobile      string `json:"mobile"`
	Phone       string `json:"phone"`
	Email       string `json:"email"`
}

type OrderRemark struct {
	SignerID     string `json:"signerId"`
	OperatorType string `json:"operatorType"`
	OperatorID   string `json:"operatorId"`
}

type RemittanceInfo struct {
	RemittanceID string `json:"remittanceId"`
	Amount       int    `json:"amount"`
}

type CouponDeduct struct {
	CouponID        int    `json:"couponId"`
	CouponType      string `json:"couponType"`
	TradeAmount     int    `json:"tradeAmount"`
	AvailableAmount int    `json:"availableAmount"`
}

//type BalanceDeductInfo struct {
//	CustomerIdentityID  int `json:"customerIdentityId"`
//	CouponDeductAmount  int `json:"couponDeductAmount"`
//	AccountDeductAmount int `json:"accountDeductAmount"`
//	InvoiceAmount       int `json:"invoiceAmount"`
//	CouponDeductList    []CouponDeduct `json:"couponDeductList"`
//	AccountDeductList []interface{} `json:"accountDeductList"`
//}
//
//type PayInfo struct {
//	PaymentWay        string `json:"paymentWay"`
//	BalanceDeductInfo `json:"balanceDeductInfo"`
//}

type OrdinaryOrder struct {
	BaseInfo `json:"baseInfo"`
	ProductInfoList []ProductInfo `json:"productInfo"`
	ReductionReason   string `json:"reductionReason"`
	InvoiceBeforePaid string `json:"invoiceBeforePaid"`
	InvoiceInfo `json:"invoiceInfo"`
	DeliveryInfo `json:"deliveryInfo"`
	ContactInfo `json:"contactInfo"`
	OrderRemark `json:"orderRemark"`
	//PayInfo `json:"payInfo"`
}
